package com.ruiysoft.service.mdse;

import com.ruiysoft.controller.integralmdse.vo.InnrIntegralMdseVo;
import com.ruiysoft.entity.mdse.MerchandiseSpu;
import com.ruiysoft.pub.entity.PageInfo;
import com.ruiysoft.service.mdse.bean.*;

import java.util.List;
import java.util.Map;


public interface IMerchandiseManage {
    Integer createOrEditSku(SkuDtail skuDtail);

    List<SkuDtail> querySkuList(Long shopId, Long spuId);

	PageInfo<MerchandiseSpuDto> findspuDtoPageByCondition(MerchandiseCondition mdseCondition) throws Exception;

	MerchandiseSpuDto findMdseSpuDtoBySpuId(Long spuId, Long shopId) throws Exception;

    void sava(MerchandiseSpuDto merchandiseSpuDto) throws Exception;

    MerchandiseSkuDto findMdseSkuDtoBySkuId(Long skuId) throws Exception;

    PageInfo<MerchandiseSkuDto> findSkuDtoPageByCondition(MerchandiseCondition condition);

    void upStatus(Long spuId, Integer status);

    void upAllStatus(List<Long> spuIds, Integer status, Long shopId);

    List<MerchandiseSkuDto> findSkuDtoListByCondition(List<Long> skuIds);

    void derBatchQuantity(List<MerchandiseStoceEnvelope> skuNums) throws Exception;

    Integer findMdseSkuStockBySkuId(Long skuId);

    void delBySpuIds(List<Long> spuIds, Long shopId);

    Map<Long,InnrIntegralMdseVo> findIntegralMdseMapBySkuIdsAndMLv(List<Long> skuIds, Integer mLv);

    int delSku(Integer skuId);

    int updateSpu(MerchandiseSpu merchandiseSpu);

    void upAllStatusByCategoryIdPost(Integer status, Long shopId, Long categoryId);
}
